/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package nl.jeroen_nieuwenhuis.faceosccomputercontrol.gui; import java.net.URL; import java.util.ResourceBundle; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.ChoiceBox; import javafx.scene.control.TextField; import nl.jeroen_nieuwenhuis.faceosccomputercontrol.KeyPresser.KeyPressConfiguration; import nl.jeroen_nieuwenhuis.faceosccomputercontrol.KeyPresser.KeyPresser; import nl.jeroen_nieuwenhuis.faceosccomputercontrol.MainApp; /** * FXML Controller class * * @author Jeroen */ public class KeyPresserController implements Initializable { @FXML private CheckBox leftBrowUpEnabled; @FXML private CheckBox leftBrowDownEnabled; @FXML private CheckBox rightBrowUpEnabled; @FXML private CheckBox rightBrowDownEnabled; @FXML private CheckBox leftBrowUpReleasedEnabled; @FXML private CheckBox leftBrowDownReleasedEnabled; @FXML private CheckBox rightBrowUpReleasedEnabled; @FXML private CheckBox rightBrowDownReleasedEnabled; @FXML private CheckBox mouthOpenEnabled; @FXML private CheckBox mouthClosedEnabled; @FXML private TextField leftBrowUpChar; @FXML private TextField leftBrowDownChar; @FXML private TextField rightBrowUpChar; @FXML private TextField rightBrowDownChar; @FXML private TextField leftBrowUpReleasedChar; @FXML private TextField leftBrowDownReleasedChar; @FXML private TextField rightBrowUpReleasedChar; @FXML private TextField rightBrowDownReleasedChar; @FXML private TextField mouthOpenChar; @FXML private TextField mouthClosedChar; @FXML private Button saveButton; @FXML private Button newButton; @FXML private TextField newField; @FXML private ChoiceBox configurationPicker; private KeyPresser presser; private MainApp app; /** * Initializes the controller class. */ @Override public void initialize(URL url, ResourceBundle rb) { } /** * called from main after controller is initialized Needs to be refactored */ public void init(MainApp app) { this.app = app; presser = new KeyPresser(); configurationPicker.setItems(FXCollections.observableArrayList(presser.getConfNames())); configurationPicker.getSelectionModel().select(0); configurationPicker.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { presser.setCurrent(newValue.intValue()); setToCurrent(); } }); newButton.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { String tekst = newField.getText(); if (!tekst.isEmpty()) { presser.addConf(new KeyPressConfiguration(tekst)); configurationPicker.setItems(FXCollections.observableArrayList(presser.getConfNames())); configurationPicker.getSelectionModel().select(presser.getConfNames().size() - 1); presser.setCurrent(presser.getConfNames().size() - 1); newField.setText(""); clearAll(); } } }); leftBrowUpEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setLeftBrowUpEnabled(new_val); } }); leftBrowUpReleasedEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setLeftBrowUpReleasedEnabled(new_val); } }); leftBrowDownEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setLeftBrowDownEnabled(new_val); } }); leftBrowDownReleasedEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setLeftBrowDownReleasedEnabled(new_val); } }); rightBrowUpEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setRightBrowUpEnabled(new_val); } }); rightBrowUpReleasedEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setRightBrowUpReleasedEnabled(new_val); } }); rightBrowDownEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setRightBrowDownEnabled(new_val); } }); rightBrowDownReleasedEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setRightBrowDownReleasedEnabled(new_val); } }); mouthOpenEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setMouthOpenEnabled(new_val); } }); mouthClosedEnabled.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) { presser.getCurrent().setMouthClosedEnabled(new_val); } }); leftBrowUpChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setLeftBrowUpChar(newValue.charAt(0)); } } }); leftBrowUpReleasedChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setLeftBrowUpReleasedChar(newValue.charAt(0)); } } }); leftBrowDownChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setLeftBrowDownChar(newValue.charAt(0)); } } }); leftBrowDownReleasedChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setLeftBrowDownReleasedChar(newValue.charAt(0)); } } }); rightBrowUpChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setRightBrowUpChar(newValue.charAt(0)); } } }); rightBrowUpReleasedChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setRightBrowUpReleasedChar(newValue.charAt(0)); } } }); rightBrowDownChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setRightBrowDownChar(newValue.charAt(0)); } } }); rightBrowDownReleasedChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setRightBrowDownReleasedChar(newValue.charAt(0)); } } }); mouthOpenChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setMouthOpenChar(newValue.charAt(0)); } } }); mouthClosedChar.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (!newValue.isEmpty()) { presser.getCurrent().setMouthClosedChar(newValue.charAt(0)); } } }); } private void setToCurrent() { leftBrowUpEnabled.setSelected(presser.getCurrent().isLeftBrowUpEnabled()); leftBrowDownEnabled.setSelected(presser.getCurrent().isLeftBrowDownEnabled()); rightBrowUpEnabled.setSelected(presser.getCurrent().isRightBrowUpEnabled()); rightBrowDownEnabled.setSelected(presser.getCurrent().isRightBrowDownEnabled()); mouthOpenEnabled.setSelected(presser.getCurrent().isMouthOpenEnabled()); mouthClosedEnabled.setSelected(presser.getCurrent().isMouthClosedEnabled()); leftBrowUpChar.setText(presser.getCurrent().getLeftBrowUpChar() + ""); leftBrowDownChar.setText(presser.getCurrent().getLeftBrowDownChar() + ""); rightBrowUpChar.setText(presser.getCurrent().getRightBrowUpChar() + ""); rightBrowDownChar.setText(presser.getCurrent().getRightBrowDownChar() + ""); mouthOpenChar.setText(presser.getCurrent().getMouthOpenChar() + ""); mouthClosedChar.setText(presser.getCurrent().getMouthClosedChar() + ""); } private void clearAll() { leftBrowUpEnabled.setSelected(false); presser.getCurrent().setLeftBrowUpEnabled(false); leftBrowDownEnabled.setSelected(false); presser.getCurrent().setLeftBrowDownEnabled(false); rightBrowUpEnabled.setSelected(false); presser.getCurrent().setRightBrowUpEnabled(false); rightBrowDownEnabled.setSelected(false); presser.getCurrent().setRightBrowDownEnabled(false); mouthOpenEnabled.setSelected(false); presser.getCurrent().setMouthOpenEnabled(false); mouthClosedEnabled.setSelected(false); presser.getCurrent().setMouthClosedEnabled(false); leftBrowUpChar.setText(""); presser.getCurrent().setLeftBrowUpChar('`'); leftBrowDownChar.setText(""); presser.getCurrent().setLeftBrowDownChar('`'); rightBrowUpChar.setText(""); presser.getCurrent().setRightBrowUpChar('`'); rightBrowDownChar.setText(""); presser.getCurrent().setRightBrowDownChar('`'); mouthOpenChar.setText(""); presser.getCurrent().setMouthOpenChar('`'); mouthClosedChar.setText(""); presser.getCurrent().setMouthClosedChar('`'); } public KeyPresser getPresser() { return presser; } public void setApp(MainApp app) { this.app = app; } }